
#ifndef DEBUG_H
#define DEBUG_H

#include "ilist.h"
#include "hash.h"
#include "token.h"

#include <stdio.h>
#include <stdlib.h>
#include <stdarg.h>

/*

typedef enum enTInstrSet {
    IS_NOP = 0,
    IS_READ,             // 1  read            -       -       out
    IS_WRITE,            // 2  write           in      -       -
    IS_ADD,              // 3  +               in      in      out
    IS_SUB,              // 4  -               in      in      out
    IS_MUL,              // 5  *               in      in      out
    IS_DIV,              // 6  /               in      in      out
    IS_GOTO,             // 7  goto if not 0   in      -       label   (in = NULL - skoc vzdy)
    IS_LABEL,            // 8  label           label
    IS_NOT,              // 9  negation        in      -       out     (in = 0 -> out = 1; in != 0 -> out = 0)
    IS_COPY,             // 10 copy            in      -       out
    IS_LESS,             // 11 <               in      in      out     (out = 1 - pokud plati; 0 - pokud neplati)
    IS_LESSEQ,           // 12 <=              in      in      out     (out = 1 - pokud plati; 0 - pokud neplati)
    IS_GRT,              // 13 >               in      in      out     (out = 1 - pokud plati; 0 - pokud neplati)
    IS_GRTEQ,            // 14 >=              in      in      out     (out = 1 - pokud plati; 0 - pokud neplati)
    IS_EQUAL,            // 15 ==              in      in      out     (out = 1 - pokud plati; 0 - pokud neplati)

    IS_LENGTH,           // 16 length()        in      -       out     (in = string, out = int)
    IS_FIND,             // 17 find()          in      in      out     (in,in = string, out = int)
    IS_SORT,             // 18 sort()          in      -       out     (in = string, out = string)
    IS_CONCAT,           // 19 concat()        in      in      out     (in,in,out = string)

    IS_RTN               // 20 return          in      -       -
} TInstrSet;


*/





void _debug_vamp(const char* fmt, ... );
void _debug(const char* fmt, ... );

void _error(const char* fmt, ... );

void _debug_instructions(tIList *L);

void _debug_printHT( tHTable* ptrht );

void _debug_printToken(TToken Token);
#endif
